package com.itheima.DateTimeDemo;

import java.util.Calendar;
import java.util.Date;

/**
 * @author zhangbaiyan
 * @date 2024-08-22 17:04
 * @description:
 * @version:
 */
public class DateTimeDemo {
    public static void main(String[] args) {
        /*
        public static Calendar getInstance()            获取当前时间的日历对象

        public final Date getTime()                     获取日历对象对应的日期对象
        public final void setTime(Date date)            设置日历对象对应的日期对象

        public final int get(int field)                 获取指定字段的值
        public final void set(int field, int value)     设置指定字段的值

        public final void add(int field, int amount)    增加指定字段的值

        public long getTimeInMillis()                  获取当前日历对象对应的毫秒值
        public void setTimeInMillis(long millis)       设置当前日历对象对应的毫秒值
         */

        //1.获取日历对象
        //细节:Calendar是一个抽象类,不能直接new,而是通过一个静态方法获取到类对象n
        //底层原理:
        //会根据系统的不同时区来获取不同的日历对象
        //会把时间中的纪元,年,月,日,时,分,秒,星期,等等都放到一个数组当中
        //0:表示纪元
        //1:表示年
        //2:表示月
        //3:一年中的第几周
        //4:一个月中的第几周
        //5:一个月中的第几天
        //.....16
        //细节2:
        //月份:范围是0~11 如果获取出来的是0,表示1月
        //星期:在老外眼里,星期是从星期天开始算的,在老中国眼里,星期是从星期一开始的
        //  1(星期日)  2(星期一) 3(星期二) 4(星期三) 5(星期四) 6(星期五) 7(星期六)
        Calendar c = Calendar.getInstance();

        //2.修改一下日期代表的时间
        Date d = new Date(0L);
        c.setTime(d);
        System.out.println(c);
        
        
        //public int get(int field) 取日期中的某个字段信息
        //public void set(int field, int value) 设置日期中的某个字段信息
        //public void add(int field, int amount) 为某个字段增加/减少指定的值
        c.set(Calendar.YEAR, 2024);
        c.set(Calendar.MONTH, 999);

        int year = c.get(Calendar.YEAR);
        int month= c.get(Calendar.MONTH)+1;
        int date = c.get(Calendar.DAY_OF_MONTH);
        int week = c.get(Calendar.DAY_OF_WEEK);


        System.out.println(year + "-" + month + "-" + date+ "-" + getWeek(week));
    }

    public static String getWeek(int index){
        return switch (index) {
            case 1 -> "星期日";
            case 2 -> "星期一";
            case 3 -> "星期二";
            case 4 -> "星期三";
            case 5 -> "星期四";
            case 6 -> "星期五";
            case 7 -> "星期六";
            default -> "输入有误";
        };
    }
}
